package com.lihaogn.sell.mapper;

import com.lihaogn.sell.entity.Admin;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @FileName: AdminDao
 * @Description: 管理员-数据库操作
 * @Author: lihao
 * @Date: 2019-04-22 17:56
 * @Version: 1.0
 */
@Mapper
public interface AdminMapper {

    // ================ 查询操作 ================

    /**
     * 获取所有数据的条数
     * @return
     */
    int getRowsCount();

    /**
     * 获取所有的admin
     *
     * @return adminList
     */
    List<Admin> queryAdmin();


    /**
     * 根据分页信息获取admin列表
     *
     * @param page
     * @return
     */
    List<Admin> queryAdminForPage(Map<String, Integer> page);

    /**
     * 根据adminName查找admin
     *
     * @param adminName
     * @return 匹配的个数
     */
    int queryAdminByName(String adminName);

    /**
     * 根据adminName查找匹配的admin
     *
     * @param adminName
     * @return Admin
     */
    Admin getAdminByName(String adminName);

    /**
     * 根据id查询admin
     * @param adminId
     * @return
     */
    Admin queryAdminById(String adminId);

    // ================ 搜索查询 ================
    /**
     * 根据日期，分页获取admin列表
     * @param pageData
     * @return
     */
    List<Admin> searchAdminByDateForPage(Map<String, Object> pageData);

    /**
     * 根据日期，获取匹配的行数
     * @param dateMap
     * @return
     */
    int searchCountByDate(Map<String, Object> dateMap);

    // ================ 插入操作 ================

    /**
     * 添加一个admin
     *
     * @param admin
     * @return
     */
    int insertAdmin(Admin admin);

    // ================ 修改操作 ================

    /**
     * 更新admin
     *
     * @param admin
     * @return
     */
    int updateAdmin(Admin admin);

    // ================ 删除操作 ================

    /**
     * 根据name删除admin
     *
     * @param adminName
     * @return
     */
    int deleteAdminByName(String adminName);

    /**
     * 根据names删除多个admin
     * @param map
     * @return
     */
    int deleteAdminInNames(Map<String, Object> map);


}
